This invention relates generally to distributed computing involving multiple users, possibly with their own computers connected to networks, including the Internet, Intranet, LAN or WAN. More particularly, the field is that of data-conferencing and application sharing between users connected to a network and even more particularly of providing efficient and user friendly user interfaces that allow users greater control over their work.
The growth in the number and sophistication of computers and their users has made possible not only new uses but also demand for user friendly applications to perform complex tasks in an intuitive and seamless fashion. Thus, computer users are increasingly demanding and expecting software that permits a variety of tasks to be performed on the same computer without the need for extensive training and time/resource investments.
Many business and personal tasks involve interacting with other people and entities, often using the Internet or a local network. Such tasks may involve communication via email, and increasingly, audio/video/data connections over computer networks along with the ability to operate computers or applications remotely. Unsurprisingly, the market for audio/video conferencing products has grown considerably to about 39 billion dollars annually. In an increasingly interconnected world, data conferencing in the form of application sharing not only substitutes for the need to travel, but allows a traveler to retain limited use of familiar software by permitting remote operation.
Furthermore, many projects, such as software development, computer aided design (xe2x80x9cCADxe2x80x9d) and even instruction via remote classes hosted on the web benefit from the ability to not merely talk or see other participants, but also observe an application being executed by a user and, optionally, acquire control of the application. Several collaborators may work on the same document or design at the same time without physically being present in the same room. The participants can examine each other""s work and contribute their opinion and modifications.
It is conceivable that many beta and even trial versions of software may be made available to potential users via a remote connection, thus obviating the need for downloading several Megabytes of code while permitting the software owner to retain control of the program code. It should be noted that the benefits are mutual. Users may obtain the look and feel of an application, even on data of their choosing, without having to worry about uninstalling the program if it is not satisfactory. For instance, a genealogy program vendor may invite potential buyers or customers to use a program and its associated database without giving away proprietary information. And, there are many more productive uses possible for software that permits remote sharing of applications.
Application sharing involves transfer of significant data, including input and output data for the shared application, accurately across networks. To this end standards have been developed to facilitate data transfer across networks comprising a variety of hardware and software packages. A standard of particular significance for data conferencing, due to its popularity, is the T.120 standard. The T.120 family of standards is compatible with applications using the H.323 set of standards that permit audio and video signals to be shared in addition to data conferencing. Consequently, the packet-based H.323 standards are expected to be the next generation of conferencing standards. Thus, a H.323 based connection may be established which allows data transfer in compliance with the T.120 standard while the connections are negotiated using H.323 protocols. The greater need for error free transmission of data is met by the use of the transmission control protocol (xe2x80x9cTCPxe2x80x9d) by the T.120 suite of standards for data conferencing, thus ensuring error free transfer of instructions, program outputs and data.
Appropriate standards facilitate interoperability of applications, but equally important is the user interface for effective and efficient use of applications utilizing the standards. Many vendors, such as xe2x80x9cMICROSOFTxe2x80x9d, xe2x80x9cWHITE PINExe2x80x9d and many others, supply conferencing products that have generated some experience with user interfaces. In addition, some products, such as xe2x80x9cPCANYWHERExe2x80x9d and xe2x80x9cTIMBUKTUxe2x80x9d allow for controlling other computers.
Some of these software products allow a remote user to assume complete control of another computer""s desktop. In such a situation the mouse movements and other operations on the controlling computer are reflected on the controlled, i.e. client, computer. The controlled computer may not have any control over its desktop, in which case it merely executes instructions from the controlling computer. Another flavor of this situation occurs when an application is being shared across a network. For example, a host may launch an application for sharing with multiple conference participants. Thus, a document being drafted by a team may appear on the screens of the members of the drafting team due to the sharing of the document processing application by the host. The controlling computer, usually the host""s computer, controls a window corresponding to the shared application on the desktop of an end user""s computer, i.e., the machine with which the host shares the application. Consequently, operations on the controlling computer are reflected on the controlled computer, and, in particular, changes made to the window.
The position of this window, which is actually a fake window, relative to the desktop of each team member""s computer is the same as that on the controlling computer""s desktop. While many control symbols appear in this window, only the controlling user may operate these symbols. This is a limitation placed by the need to avoid conflicts due to different users attempting disparate operations. Consequently, such a window is a xe2x80x98fake windowxe2x80x99 since it cannot be manipulated like the familiar window that many users have come to know and love/hate.
Many vendors, e.g., xe2x80x9cMICROSOFT(copyright)xe2x80x9d and its xe2x80x9cNETMEETING(copyright)xe2x80x9d integrated suite of conferencing software, offer application sharing along with audio/video/data conferencing and various levels of security, access, and multitasking. Conferences compatible with such suites can be accessed by a web-browser if the conference utilizes appropriate server software packages for conference multi-casting. Multi-casting refers to the ability to transmit data to many users simultaneously in a manner similar to broadcasting, but with some control over the intended target audience.
Despite the size of the current market for application sharing products there are many problems that limit the usefulness of such products. Current products for application sharing effectively create a master user, the host, who is executing an application of interest and, in effect, depriving the user of the controlled machine, at least partial use, and possibly, any independent use of the computer desktop. It should be noted that it is not necessary to host the meeting, e.g., in a T.120 sense, in order to initiate application sharing. Anyone in the conference can share an application. In the application-sharing context, in contrast to the T.120 context, the host is the person initiating the application sharing, and not necessarily the host of the entire conference.
Thus, the controlled user cannot control the size or position of the fake window of the fake window covering icons and useful areas of the desktop. IN fact no user can can control the size or position of the fake windows. Furthermore, application sharing software does not account for the different kinds of monitors and resolution, thus creating the possibility of even occupying the entire viewable area with a single application frame. A host with a large desktop may share applications that may not even be visible on a smaller desktop on account of being off-screen. Consequently, there is considerable potential for confusion when there are several applications being shared because not all applications may be shared by the same set of users. Some application fake windows may, partially or completely, cover up fake or real windows belonging to other shared applications. Furthermore, locating a particular window of interest is difficult in a jungle of fake windows.
The use of fake windows in application sharing software renders many familiar graphical symbols non-operational resulting in an unfriendly and intimidating interaction for less experienced users. There are additional consequences flowing from the use of fake windows. The need to update multiple application windows each time an operation is performed in the controlling window results in considerable network traffic. This can lead to significant delay in system response as the computer waits for adequate updates to the fake window to complete regardless of the interest of the user. Thus, application sharing software presents many problems when multiple applications are being shared by a diverse set of users.
The invention described herein overcomes these shortcomings in the art and provides many additional benefits. The invention displays the shared window, viz., the shadow window corresponding to the shared application, in a separate frame, which is displayed on another user""s desktop. This frame may be provided with suitable controls for moving the frame relative to the desktop and even minimize or resize it. Thus, mouse movements and other operations from the host""s desktop can be reflected in the frame on the client desktop as a function of the frame boundaries. The use of the frame also makes it possible to reduce unnecessary network traffic by updating frames that are not in focus less frequently. Consequently, the user interface is made user-friendly and responds with significantly smaller delays.